package cn.tedu.mall.controller;

import cn.tedu.mall.pojo.Item;
import cn.tedu.mall.pojo.ItemDesc;
import cn.tedu.mall.service.ItemService;
import cn.tedu.mall.vo.EasyUITable;
import cn.tedu.mall.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@RestController
public class ItemController {
    @Autowired
    private ItemService itemService;
    /**
     *  获取商品列表数据
     *  请求url:http://localhost:8091/item/query?page=1&rows=20
     *  page:当前页的页码值   rows:当前页显示的行数
     *  返回值：?
     */
    @GetMapping("/item/query")
    //@ResponseBody //将java对象转换成json
    public EasyUITable findItemByPage(Integer page, Integer rows){
        //业务：进行分页查询
        return itemService.findItemByPage(page,rows);
    }
    /**
     * 业务：实现商品数据的新增
     * url：/item/save
     * 请求方式POST
     * 请求参数：Item item,ItemDesc itemesc
     * 返回值：SysResult
     */
    @RequestMapping("/item/save")
    public SysResult saveItem(Item item, ItemDesc itemDesc){
        //业务：进行商品数据的新增
        itemService.saveItem(item,itemDesc);
        return SysResult.success();
    }
    /**
     * 请求：get
     * url:http://localhost:8091/item/query/item/desc/{itemId}
     * 请求参数：{itemId}
     * SysResult对象（data）
     */
    @RequestMapping("/item/query/item/desc/{itemId}")
    public SysResult findItemDescByItemId(@PathVariable Long itemId){
         ItemDesc itemDesc=itemService.findItemDescByItemId(itemId);
         return SysResult.success(itemDesc);
    }
    /**
     * 需求：进行商品数据的修改
     * 请求路径：/item/update
     * 请求参数：Item item ，ItemDesc itemDesc
     * 返回值：SysResult对象
     */
    @RequestMapping("/item/update")
    public SysResult updateItem(Item item,ItemDesc itemDesc){
        //业务：进行商品数据和商品详情数据的修改
        itemService.updateItem(item,itemDesc);
        return SysResult.success();
    }
    /**
     * 业务：实现商品数据的删除操作
     * url：/item/delete
     * 请求参数：ids  可变参数
     * 返回值：SysResult对象
     */
    @RequestMapping("/item/delete")
    public SysResult deleteItem(Long... ids){
         //业务：基于多个id删除商品数据
        itemService.deleteItems(ids);
        return SysResult.success();
    }
    /**
     * 上架：http://localhost:8091/item/reshelf
     * 下架：http://localhost:8091/item/instock
     * 请求参数：ids
     * 返回值：SysResult
     *
     * status=1上架  status=2下架
     */
    @RequestMapping("/item/instock")
    public SysResult instock(Long... ids){
        //业务：修改status=2，表示商品下架
        int status=2;
        itemService.updateStatus(ids,status);
        return SysResult.success();
    }
    @RequestMapping("/item/reshelf")
    public SysResult reshelf(Long... ids){
        //业务：修改status=2，表示商品下架
        int status=1;
        itemService.updateStatus(ids,status);
        return SysResult.success();
    }
}
